# -*- coding: utf-8 -*-
'''
@authors Ricardo Ramos 6316 && Carlos Pereira 11112
@date 18 de Outubro de 2014
@obs: Criação de um ficheiro .csv referente a
consulta dos resultados do documento excell.
'''
import create_bd
import csv
from sqlalchemy import *

class Stats():
    '''
    Classe Stats executa uma pesquisa na base de dados já criada
    '''
    create_bd.init_sqlalchemy('IPC_Portugal_1977_2013.xls')
    try:
        database = create_engine('sqlite:///database.db')
        metadata = MetaData(database)
        dados = Table('dados', metadata, autoload = True)
        result = dados.select().execute()
    except IOError:
        print "Failed"

    global list_result
    list_result = []
    for i in result:
        list_result.append(i)

    def ipc_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[2]])


        with open('ipc_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def inflacao_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[3]])


        with open('inflacao_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def remmin_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[4]])


        with open('remmin_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def remmax_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[5]])


        with open('remmax_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def pib_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[6]])


        with open('pib_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def rendanbruto_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[7]])


        with open('rendanbruto_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def renddispbruto_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[8]])


        with open('renddispbruto_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def rempercapita_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[9]])


        with open('rempercapita_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

    def evorem_anos(self):
        '''
        Método que executa a pesquisa de todos os anos
        adicionando-as numa lista, com as respectivas estatisticas.
        '''
        anos = []
        lista = []
        for i in list_result:
                lista.append([i[1], i[4], i[5]])


        with open('evrem_anos.csv', 'wb') as csvfile:
            stats_esta = csv.writer(csvfile, delimiter=';',
                                quotechar=',', quoting=csv.QUOTE_MINIMAL)
            stats_esta.writerows(lista)

